对于我的作业,我必须创建一个函数,该函数返回一个与给定字符串相同但删除了数字的新字符串。
示例:删除数字('abc123')将返回字符串'abc'。
我已经尝试了几乎所有我能想到但却无法正常工作的东西:(
def test(str):
for ch in str:
num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
if ch == num[0]:
return str.replace(ch, '')
elif ch == num[1]:
return str.replace(ch, '')
elif ch == num[2]:
return str.replace(ch, '')
elif ch == num[3]:
return str.replace(ch, '')
elif ch == num[4]:
return str.replace(ch, '')
elif ch == num[5]:
return str.replace(ch, '')
elif ch == num[6]:
return str.replace(ch, '')
elif ch == num[7]:
return str.replace(ch, '')
elif ch == num[8]:
return str.replace(ch, '')
我输入test('abc123'),期望输出为'abc'。但我得到'abc23'作为我的输出。
在其他尝试中,同样的问题:
def test(str):
for char in str:
num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']
if char in list(num):
return str.replace(char, '', len(str))
我得到了相同的结果。
任何人都可以帮助我吗?这将不胜感激。
答案 0 :(得分:6)
使用正则表达式
import re
def test(str):
string_no_numbers = re.sub("\d+", " ", str)
print(string_no_numbers)
test('abc123') #prints abc
答案 1 :(得分:1)
你的第二个解决方案已经结束了:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.hamza.collapsingprofile.ScrollingActivity"
tools:showIn="@layout/activity_scrolling">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/profile_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:elevation="4dp"
android:paddingBottom="24dp">
<ImageView
android:id="@+id/user_profile_photo"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_centerHorizontal="true"
android:background="@drawable/profile_circular_border_imageview"
android:elevation="5dp"
android:padding="20dp"
android:scaleType="centerCrop"
android:src="@drawable/hamza" />
<TextView
android:id="@+id/user_profile_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:text="Viral Android"
android:textColor="#000000"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/user_profile_short_bio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/user_profile_name"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:text="Android free tutorials and example"
android:textColor="#000000"
android:textSize="14sp" />
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/profile_layout"
android:layout_marginTop="5dp"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="3dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile XMl UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_marginBottom="3dp"
android:layout_marginTop="3dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile XMl UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#fff"
android:clickable="true"
android:elevation="4dp"
android:padding="20dp"
android:text="Android Profile UI Design" />
</LinearLayout>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
最初的问题是,您只需更换“&#39; 1&#39;字符。
您也可以使用列表理解来执行此操作:
def drop_digits(in_str):
digit_list = "1234567890"
for char in digit_list:
in_str = in_str.replace(char, "")
return in_str
答案 2 :(得分:1)
使用此
return ''.join([char for char in in_str if not char.isdigit()])
答案 3 :(得分:0)
你需要阅读一些python基础知识。 &#34;返回&#34;退出你的功能,所以它只会修改一个条目。
这里有一个提示:用更新的副本替换str而不是返回它。
string = ''.join([c for c in string if c not in "1234567890"])
答案 4 :(得分:-1)
def test(string):
return ''.join((letter for letter in string if not letter.isdigit()))